package com.crm.system.service.cluePoolManager;

import com.alibaba.excel.EasyExcel;
import com.crm.framework.listener.ExcelListener;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

@Component
public class ExcelUtil<E> {

    /**
     *  简单的表格导出工具
     * @param list 导出到表格的数据
     * @param resp 响应对象
     * @param sheetName 工作表名称
     * @return 是否导出成功
     */
    public boolean excelExport(List<E> list, HttpServletResponse resp, String sheetName) throws IOException {
        //如果传入信息不正确，直接返回false
        if (list == null || list.size() == 0 || resp == null){
            return false;
        }
        //获取传入数据的class对象
        Class<?> clazz = list.get(0).getClass();
        //如果工作表名称为空，默认修改为对象名称
        if (sheetName == null || "".equals(sheetName)){
            sheetName = clazz.getSimpleName();
        }
        //使用EasyExcel导出数据到表格输出到前端
        EasyExcel.write(resp.getOutputStream(),clazz).sheet(sheetName).doWrite(list);
        return true;
    }


    /**
     *
     * @param inputStream 前端传输文件的输入流
     * @param clazz 读取表格转换的对象class
     * @return
     */
    public List<E> excelImport(InputStream inputStream,Class<?> clazz){
        ExcelListener demoDataListener = new ExcelListener();
        return EasyExcel.read(inputStream,clazz,demoDataListener).sheet(0).doReadSync();
    }


}
